#pragma once

#include <sys/epoll.h>

#include <iostream>
#include <unistd.h>
#include <stdio.h>

#include <sys/types.h>
#include <string.h>
#include <sys/epoll.h>
#include <fcntl.h>

#include <iostream>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>

#include <sys/epoll.h>
#include <fcntl.h>



//LT模式的工作流程
void lt( epoll_event* events, int number, int epollfd, int listenfd )
{
    int epfd;
    epfd = epoll_create(100);


    // char buf[ 1024 ];
    // for ( int i = 0; i < number; i++ )
    // {
    //     int sockfd = events[i].data.fd;
    //     if ( sockfd == listenfd )
    //     {
    //         struct sockaddr_in client_address;
    //         socklen_t client_addrlength = sizeof( client_address );
    //         int connfd = accept( listenfd, ( struct sockaddr* )&client_address, &client_addrlength );
    //         addfd( epollfd, connfd, false );
    //     }
    //     else if ( events[i].events & EPOLLIN )
    //     {
    //         //只要socket读缓存中还有未读出的数据，这段代码就被触发
    //         printf( "event trigger once\n" );
    //         memset( buf, '\0', BUFFER_SIZE );
    //         int ret = recv( sockfd, buf, BUFFER_SIZE-1, 0 );
    //         if( ret <= 0 )
    //         {
    //             close( sockfd );
    //             continue;
    //         }
    //         printf( "get %d bytes of content: %s\n", ret, buf );
    //     }
    //     else
    //     {
    //         printf( "something else happened \n" );
    //     }
    // }
}



class myepoll
{
    


};